package com.wei.czz.framework.common.service;

import com.wei.czz.common.dto.common.sms.SmsTemplateFlowStatDto;
import com.wei.czz.common.tool.PageDto;
import com.wei.czz.common.vo.common.sms.SmsLogFormVo;
import com.wei.czz.framework.common.entity.SmsLogEntity;

import java.util.Date;
import java.util.List;

/**
 * Created by IntelliJ IDEA.
 *
 * @author wei
 * date: 2024-06-17 21:41:13
 * className: SmsLogService
 * version: 1.0
 * description:
 */
public interface SmsLogService {

    /**
     * 保存短信发送记录操作
     * @param smsLog 短信发送记录对象
     */
    void saveOrEdit(SmsLogEntity smsLog);

    /**
     * 批量保存短信发送记录操作
     * @param smsLogList 短信发送记录对象列表
     */
    void batchSave(List<SmsLogEntity> smsLogList);

    /**
     * 分页查询短信发送记录操作
     * @param smsLogFormVo 参数对象
     * @return 短信发送记录分页数据
     */
    PageDto<SmsLogEntity> getPageList(SmsLogFormVo smsLogFormVo);

    /**
     * 获取短信发送记录操作
     * @param account   请求账号
     * @param mobile    接收手机号
     * @param type      短信类型
     * @param version   短信模板版本号
     * @param startDate 开始时间
     * @param endDate   结束时间
     */
    List<SmsLogEntity> findList(String account, String mobile, Integer type, Integer version, Date startDate,
                                Date endDate);


    /**
     * 获取短信模板流水统计操作
     * @param type     短信类型
     * @param channel  短信渠道
     * @return 短信模板流水统计对象列表
     */
    List<SmsTemplateFlowStatDto> findStatList(Integer type, Integer channel);
}

